package com.wjy.sfhcore.itf;

import android.os.Bundle;
import android.support.v4.app.Fragment;

/**
 * 跳转接口
 *
 * @author wjy
 */
public interface IntentListener {
    /**
     * 往容器里面添加fragment
     *
     * @param fragment
     */
    public void addFragment(Fragment fragment);

    /**
     * 替换容器里面的fragment
     *
     * @param newFragment
     */
    public void replaceFragment(Fragment newFragment);

    /**
     * fragment替换
     *
     * @param newFragment    碎片
     * @param addToBackStack 是否保存堆栈信息
     */
    public void replaceFragment(Fragment newFragment, boolean addToBackStack);

    /**
     * fragment替换
     *
     * @param contentID      容器ID
     * @param newFragment    碎片
     * @param addToBackStack 是否保存堆栈信息
     */
    public void replaceFragment(int contentID, Fragment newFragment,
                                boolean addToBackStack);


    /**
     * 单纯的页面跳转
     *
     * @param cls 跳转的页面
     */
    public void goToOthers(Class<?> cls);

    /**
     * 页面跳转并关闭当前页面
     *
     * @param cls 跳转的页面
     */
    public void goToOthersF(Class<?> cls);

    /**
     * 带参数的页面跳转
     *
     * @param cls    跳转的页面
     * @param bundle 参数
     */
    public void goToOthers(Class<?> cls, Bundle bundle);

    /**
     * 带参数的页面跳转并关闭当前页面
     *
     * @param cls    跳转的页面
     * @param bundle 参数
     */
    public void goToOthersF(Class<?> cls, Bundle bundle);

    /**
     * 带回调的页面跳转
     *
     * @param cls         跳转的页面
     * @param bundle      参数
     * @param requestCode 请求码
     */
    public void goToOthersForResult(Class<?> cls, Bundle bundle, int requestCode);

    /**
     * 设置回调
     *
     * @param cls        回调的页面
     * @param bundle     参数
     * @param resultCode 返回码
     */
    public void backForResult(Class<?> cls, Bundle bundle, int resultCode);

}
